/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package g7.controller;

import g7.dao.ProdutoDAO;
import g7.modelo.Produto;
import g7.util.FacesMessageUtil;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.RequestContext;

/**
 *
 * @author julianna
 */
@ManagedBean
@ViewScoped
public class ProdutoController extends AbstractMB implements Serializable {

    @ManagedProperty(value=SprintMB.INJECTION_NAME)
    private SprintMB sprintMB;

    private Produto produto;
    private List<Produto> produtos;
    @EJB
    private ProdutoDAO produtoDAO;

    public ProdutoController() {
        produto = new Produto();
        produtos = new ArrayList<Produto>();
    }
    
    public void limpar(){
        produto = new Produto();
        produtos = new ArrayList<Produto>();
    }

    /*
     * Editar e Salvar utilizam o mesmo método
     */
    public void salvar() {
        produtoDAO.salvar(produto);
        FacesMessageUtil.mensagemInfo("Produto Cadastrado com Sucesso!");
        RequestContext context = RequestContext.getCurrentInstance();
        context.execute("dlgProduto.hide();");
        getProdutos();

    }

    public void remover() {
        produtoDAO.excluir(produto);
        getProdutos();
    }
    
    public void novaSprint() {
        sprintMB.reset();
        sprintMB.setProduto(produto);
        displayInfoMessageToUser("Cadastrar nova Sprint do Produto: "+produto.getNome());
    	
//		return "/pages/protected/atualizaOpcao.jsf";
    	
    	String url = "/g7/views/sprint/cadastroSprint.jsf";
            try {
                    FacesContext.getCurrentInstance().getExternalContext().redirect(url);
            } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
    }

    public void setSprintMB(SprintMB sprintMB) {
        this.sprintMB = sprintMB;
    }
    
    public List<Produto> getProdutos() {
        produtos = produtoDAO.listaProdutos();
        return produtos;
    }

    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }
}
